package com.bestcem.xm.qdes.grpc.client.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

@Data
@NoArgsConstructor
public class SurveyRespondentDto {

    String id;

    @JsonProperty("project_id")
    String projectId;

    @JsonProperty("data_status")
    Integer dataStatus;

    Integer status;

    @JsonProperty("pre_discard_status")
    Integer preDiscardStatus;

    Long seq;

    Boolean parsed;

    Integer version;

    Integer source;

    @JsonProperty("group_id")
    String groupId;

    @JsonProperty("group_code")
    String groupCode;

    @JsonProperty("person_id")
    String personId;

    @JsonProperty("user_agent")
    String userAgent;

    @JsonProperty("client_type")
    Integer clientType;

    String ip;

    @JsonProperty("begin_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    LocalDateTime beginTime;

    @JsonProperty("finish_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    LocalDateTime finishTime;

    @JsonProperty("rspd_data_id")
    String rspdDataId;

    @JsonProperty("rspd_weixin_id")
    String rspdWeixinId;

    @JsonProperty("rspd_location_id")
    String rspdLocationId;

    @JsonProperty("rspd_extra_id")
    String rspdExtraId;

    @JsonProperty("rspd_attachment_id")
    String rspdAttachmentId;

    @JsonProperty("ext_seq")
    String extSeq;

    @JsonProperty("submit_seq")
    Long submitSeq;

    @JsonProperty("ip_country")
    String ipCountry;

    @JsonProperty("ip_province")
    String ipProvince;

    @JsonProperty("ip_city")
    String ipCity;

    String remark;

    @JsonProperty("member_id")
    String memberId;

    @JsonProperty("current_lang")
    String currentLang;

    @JsonProperty("deliver_id")
    String deliverId;

    @JsonProperty("deliver_group_id")
    String deliverGroupId;

    @JsonProperty("again_deliver_record_id")
    String againDeliverRecordId;

    @JsonProperty("created_dt")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
    LocalDateTime createdDt;

    @JsonProperty("excel_parsed")
    Boolean excelParsed;

    @JsonProperty("survey_gids")
    List<Integer> surveyGidsList;

    @JsonProperty("ded_code")
    String dedCode;

    @JsonProperty("idy_sid")
    String idySid;

    @JsonProperty("is_copy_demo")
    Boolean isCopyDemo;

    Double score;

    /*@JsonProperty("wx_info")
    @JsonSerialize(using = String2JacksonSerializer.class)
    String wxInfo;

    @JsonProperty("quotaCheckitemList")
    @JsonSerialize(using = String2JacksonSerializer.class)
    String quotaCheckitemList;*/

    @JsonProperty("dlvr_rid")
    String dlvrRid;

    @JsonProperty("deliver_name")
    String deliverName;
}
